home *** CD-ROM | disk | FTP | other *** search
/ Apple Developer Connection 1998 Fall: Game Toolkit / Disc.iso / SDKs / QuickTime Mac / AIncludes / QD3DPick.a < prev    next >
Encoding:
Text File  |  1998-04-09  |  9.5 KB  |  335 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        QD3DPick.a
  3. ;
  4. ;    Contains:    Q3Pick methods                                    
  5. ;
  6. ;    Version:    Technology:    Quickdraw 3D 1.5.4
  7. ;                Release:    QuickTime 3.0
  8. ;
  9. ;    Copyright:    © 1995-1998 by Apple Computer, Inc., all rights reserved.
  10. ;
  11. ;    Bugs?:        Please include the the file and version information (from above) with
  12. ;                the problem description.  Developers belonging to one of the Apple
  13. ;                developer programs can submit bug reports to:
  14. ;
  15. ;                    devsupport@apple.com
  16. ;
  17. ;
  18.     IF &TYPE('__QD3DPICK__') = 'UNDEFINED' THEN
  19. __QD3DPICK__ SET 1
  20.  
  21.     IF &TYPE('__QD3D__') = 'UNDEFINED' THEN
  22.     include 'QD3D.a'
  23.     ENDIF
  24.  
  25.     IF &TYPE('__QD3DSTYLE__') = 'UNDEFINED' THEN
  26.     include 'QD3DStyle.a'
  27.     ENDIF
  28.     IF &TYPE('__QD3DGEOMETRY__') = 'UNDEFINED' THEN
  29.     include 'QD3DGeometry.a'
  30.     ENDIF
  31.  
  32. ; *****************************************************************************
  33. ; **                                                                            **
  34. ; **                            Mask bits for hit information                     **
  35. ; **                                                                            **
  36. ; ****************************************************************************
  37.  
  38.  
  39. ; typedef long                            TQ3PickDetailMasks
  40. kQ3PickDetailNone                EQU        0
  41. kQ3PickDetailMaskPickID            EQU        $01
  42. kQ3PickDetailMaskPath            EQU        $02
  43. kQ3PickDetailMaskObject            EQU        $04
  44. kQ3PickDetailMaskLocalToWorldMatrix EQU    $08
  45. kQ3PickDetailMaskXYZ            EQU        $10
  46. kQ3PickDetailMaskDistance        EQU        $20
  47. kQ3PickDetailMaskNormal            EQU        $40
  48. kQ3PickDetailMaskShapePart        EQU        $80
  49. kQ3PickDetailMaskPickPart        EQU        $0100
  50. kQ3PickDetailMaskUV                EQU        $0200
  51. ; typedef unsigned long                 TQ3PickDetail
  52.  
  53. ; ******************************************************************************
  54. ; **                                                                             **
  55. ; **                                Hitlist sorting                                 **
  56. ; **                                                                             **
  57. ; ****************************************************************************
  58.  
  59.  
  60. ; typedef long                            TQ3PickSort
  61. kQ3PickSortNone                    EQU        0
  62. kQ3PickSortNearToFar            EQU        1
  63. kQ3PickSortFarToNear            EQU        2
  64.  
  65. ; ******************************************************************************
  66. ; **                                                                             **
  67. ; **                    Data structures to set up the pick object                 **
  68. ; **                                                                             **
  69. ; ****************************************************************************
  70.  
  71. TQ3PickData                RECORD 0
  72. sort                     ds.l    1                ; offset: $0 (0)
  73. mask                     ds.l    1                ; offset: $4 (4)
  74. numHitsToReturn             ds.l    1                ; offset: $8 (8)
  75. sizeof                     EQU *                    ; size:   $C (12)
  76.                         ENDR
  77. TQ3WindowPointPickData    RECORD 0
  78. data                     ds        TQ3PickData        ; offset: $0 (0)
  79. point                     ds        TQ3Point2D        ; offset: $C (12)
  80. vertexTolerance             ds        Float32            ; offset: $14 (20)
  81. edgeTolerance             ds        Float32            ; offset: $18 (24)
  82. sizeof                     EQU *                    ; size:   $1C (28)
  83.                         ENDR
  84. TQ3WindowRectPickData    RECORD 0
  85. data                     ds        TQ3PickData        ; offset: $0 (0)
  86. rect                     ds        TQ3Area            ; offset: $C (12)
  87. sizeof                     EQU *                    ; size:   $1C (28)
  88.                         ENDR
  89. ; ******************************************************************************
  90. ; **                                                                             **
  91. ; **                                    Hit data                                 **
  92. ; **                                                                             **
  93. ; ****************************************************************************
  94.  
  95. TQ3HitPath                RECORD 0
  96. rootGroup                 ds.l    1                ; offset: $0 (0)
  97. depth                     ds.l    1                ; offset: $4 (4)
  98. positions                 ds.l    1                ; offset: $8 (8)
  99. sizeof                     EQU *                    ; size:   $C (12)
  100.                         ENDR
  101. ; ******************************************************************************
  102. ; **                                                                             **
  103. ; **                                Pick class methods                             **
  104. ; **                                                                             **
  105. ; ****************************************************************************
  106.  
  107. ;
  108. ; extern TQ3ObjectType Q3Pick_GetType(TQ3PickObject pick)
  109. ;
  110.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  111.         IMPORT_CFM_FUNCTION Q3Pick_GetType
  112.     ENDIF
  113.  
  114. ;
  115. ; extern TQ3Status Q3Pick_GetData(TQ3PickObject pick, TQ3PickData *data)
  116. ;
  117.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  118.         IMPORT_CFM_FUNCTION Q3Pick_GetData
  119.     ENDIF
  120.  
  121. ;
  122. ; extern TQ3Status Q3Pick_SetData(TQ3PickObject pick, const TQ3PickData *data)
  123. ;
  124.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  125.         IMPORT_CFM_FUNCTION Q3Pick_SetData
  126.     ENDIF
  127.  
  128. ;
  129. ; extern TQ3Status Q3Pick_GetVertexTolerance(TQ3PickObject pick, float *vertexTolerance)
  130. ;
  131.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  132.         IMPORT_CFM_FUNCTION Q3Pick_GetVertexTolerance
  133.     ENDIF
  134.  
  135. ;
  136. ; extern TQ3Status Q3Pick_GetEdgeTolerance(TQ3PickObject pick, float *edgeTolerance)
  137. ;
  138.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  139.         IMPORT_CFM_FUNCTION Q3Pick_GetEdgeTolerance
  140.     ENDIF
  141.  
  142. ;
  143. ; extern TQ3Status Q3Pick_SetVertexTolerance(TQ3PickObject pick, float vertexTolerance)
  144. ;
  145.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  146.         IMPORT_CFM_FUNCTION Q3Pick_SetVertexTolerance
  147.     ENDIF
  148.  
  149. ;
  150. ; extern TQ3Status Q3Pick_SetEdgeTolerance(TQ3PickObject pick, float edgeTolerance)
  151. ;
  152.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  153.         IMPORT_CFM_FUNCTION Q3Pick_SetEdgeTolerance
  154.     ENDIF
  155.  
  156. ;
  157. ; extern TQ3Status Q3Pick_GetNumHits(TQ3PickObject pick, unsigned long *numHits)
  158. ;
  159.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  160.         IMPORT_CFM_FUNCTION Q3Pick_GetNumHits
  161.     ENDIF
  162.  
  163. ;
  164. ; extern TQ3Status Q3Pick_EmptyHitList(TQ3PickObject pick)
  165. ;
  166.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  167.         IMPORT_CFM_FUNCTION Q3Pick_EmptyHitList
  168.     ENDIF
  169.  
  170. ;
  171. ; extern TQ3Status Q3Pick_GetPickDetailValidMask(TQ3PickObject pick, unsigned long index, TQ3PickDetail *pickDetailValidMask)
  172. ;
  173.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  174.         IMPORT_CFM_FUNCTION Q3Pick_GetPickDetailValidMask
  175.     ENDIF
  176.  
  177. ;
  178. ; extern TQ3Status Q3Pick_GetPickDetailData(TQ3PickObject pick, unsigned long index, TQ3PickDetail pickDetailValue, void *detailData)
  179. ;
  180.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  181.         IMPORT_CFM_FUNCTION Q3Pick_GetPickDetailData
  182.     ENDIF
  183.  
  184. ;
  185. ; extern TQ3Status Q3HitPath_EmptyData(TQ3HitPath *hitPath)
  186. ;
  187.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  188.         IMPORT_CFM_FUNCTION Q3HitPath_EmptyData
  189.     ENDIF
  190.  
  191. ; ******************************************************************************
  192. ; **                                                                             **
  193. ; **                            Window point pick methods                         **
  194. ; **                                                                             **
  195. ; ****************************************************************************
  196.  
  197. ;
  198. ; extern TQ3PickObject Q3WindowPointPick_New(const TQ3WindowPointPickData *data)
  199. ;
  200.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  201.         IMPORT_CFM_FUNCTION Q3WindowPointPick_New
  202.     ENDIF
  203.  
  204. ;
  205. ; extern TQ3Status Q3WindowPointPick_GetPoint(TQ3PickObject pick, TQ3Point2D *point)
  206. ;
  207.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  208.         IMPORT_CFM_FUNCTION Q3WindowPointPick_GetPoint
  209.     ENDIF
  210.  
  211. ;
  212. ; extern TQ3Status Q3WindowPointPick_SetPoint(TQ3PickObject pick, const TQ3Point2D *point)
  213. ;
  214.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  215.         IMPORT_CFM_FUNCTION Q3WindowPointPick_SetPoint
  216.     ENDIF
  217.  
  218. ;
  219. ; extern TQ3Status Q3WindowPointPick_GetData(TQ3PickObject pick, TQ3WindowPointPickData *data)
  220. ;
  221.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  222.         IMPORT_CFM_FUNCTION Q3WindowPointPick_GetData
  223.     ENDIF
  224.  
  225. ;
  226. ; extern TQ3Status Q3WindowPointPick_SetData(TQ3PickObject pick, const TQ3WindowPointPickData *data)
  227. ;
  228.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  229.         IMPORT_CFM_FUNCTION Q3WindowPointPick_SetData
  230.     ENDIF
  231.  
  232.  
  233. ; ******************************************************************************
  234. ; **                                                                             **
  235. ; **                            Window rect pick methods                         **
  236. ; **                                                                             **
  237. ; ****************************************************************************
  238.  
  239. ;
  240. ; extern TQ3PickObject Q3WindowRectPick_New(const TQ3WindowRectPickData *data)
  241. ;
  242.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  243.         IMPORT_CFM_FUNCTION Q3WindowRectPick_New
  244.     ENDIF
  245.  
  246. ;
  247. ; extern TQ3Status Q3WindowRectPick_GetRect(TQ3PickObject pick, TQ3Area *rect)
  248. ;
  249.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  250.         IMPORT_CFM_FUNCTION Q3WindowRectPick_GetRect
  251.     ENDIF
  252.  
  253. ;
  254. ; extern TQ3Status Q3WindowRectPick_SetRect(TQ3PickObject pick, const TQ3Area *rect)
  255. ;
  256.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  257.         IMPORT_CFM_FUNCTION Q3WindowRectPick_SetRect
  258.     ENDIF
  259.  
  260. ;
  261. ; extern TQ3Status Q3WindowRectPick_GetData(TQ3PickObject pick, TQ3WindowRectPickData *data)
  262. ;
  263.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  264.         IMPORT_CFM_FUNCTION Q3WindowRectPick_GetData
  265.     ENDIF
  266.  
  267. ;
  268. ; extern TQ3Status Q3WindowRectPick_SetData(TQ3PickObject pick, const TQ3WindowRectPickData *data)
  269. ;
  270.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  271.         IMPORT_CFM_FUNCTION Q3WindowRectPick_SetData
  272.     ENDIF
  273.  
  274.  
  275.  
  276. ; ******************************************************************************
  277. ; **                                                                             **
  278. ; **                                Shape Part methods                             **
  279. ; **                                                                             **
  280. ; ****************************************************************************
  281.  
  282. ;
  283. ; extern TQ3ObjectType Q3ShapePart_GetType(TQ3ShapePartObject shapePartObject)
  284. ;
  285.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  286.         IMPORT_CFM_FUNCTION Q3ShapePart_GetType
  287.     ENDIF
  288.  
  289. ;
  290. ; extern TQ3ObjectType Q3MeshPart_GetType(TQ3MeshPartObject meshPartObject)
  291. ;
  292.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  293.         IMPORT_CFM_FUNCTION Q3MeshPart_GetType
  294.     ENDIF
  295.  
  296. ;
  297. ; extern TQ3Status Q3ShapePart_GetShape(TQ3ShapePartObject shapePartObject, TQ3ShapeObject *shapeObject)
  298. ;
  299.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  300.         IMPORT_CFM_FUNCTION Q3ShapePart_GetShape
  301.     ENDIF
  302.  
  303. ;
  304. ; extern TQ3Status Q3MeshPart_GetComponent(TQ3MeshPartObject meshPartObject, TQ3MeshComponent *component)
  305. ;
  306.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  307.         IMPORT_CFM_FUNCTION Q3MeshPart_GetComponent
  308.     ENDIF
  309.  
  310. ;
  311. ; extern TQ3Status Q3MeshFacePart_GetFace(TQ3MeshFacePartObject meshFacePartObject, TQ3MeshFace *face)
  312. ;
  313.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  314.         IMPORT_CFM_FUNCTION Q3MeshFacePart_GetFace
  315.     ENDIF
  316.  
  317. ;
  318. ; extern TQ3Status Q3MeshEdgePart_GetEdge(TQ3MeshEdgePartObject meshEdgePartObject, TQ3MeshEdge *edge)
  319. ;
  320.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  321.         IMPORT_CFM_FUNCTION Q3MeshEdgePart_GetEdge
  322.     ENDIF
  323.  
  324. ;
  325. ; extern TQ3Status Q3MeshVertexPart_GetVertex(TQ3MeshVertexPartObject meshVertexPartObject, TQ3MeshVertex *vertex)
  326. ;
  327.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  328.         IMPORT_CFM_FUNCTION Q3MeshVertexPart_GetVertex
  329.     ENDIF
  330.  
  331.  
  332.  
  333.     ENDIF ; __QD3DPICK__ 
  334.  
  335.